---
title: 設定方法
i18nReady: true
---
import Since from '~/components/Since.astro';



次のリファレンスはAstroでサポートされているすべての設定項目をカバーしています。Astroの設定についてもっと知りたい場合は、[Astroの設定](/ja/guides/configuring-astro/)の解説を確認してください。

```js
// astro.config.mjs
import { defineConfig } from 'astro/config'

export default defineConfig({
  // 設定項目をここに追加します
})
```
## トップレベルのオプション

### site

<p>

**データ型:** `string`
</p>

最終的にデプロイされるURLです。Astroはビルドの最後にサイトマップとcanonicalタグのURLを生成するためにこの完全なURLを使用します。Astroを最大限活用するためにこの値を設定することを強く推奨します。

```js
{
  site: 'https://www.my-site.dev'
}
```

### base

<p>

**データ型:** `string`
</p>

デプロイ先のベースパスです。Astroは、開発時と本番ビルドの両方で、このパスをページとアセットのルートとして使用します。

以下の例では、`astro dev`コマンドは`/docs`でサーバーを起動します。

```js
{
  base: '/docs'
}
```

このオプションを使用する場合、静的アセットのインポートとURLには、指定したベースをプレフィックスとして追加する必要があります。この値は`import.meta.env.BASE_URL`でアクセスできます。

`import.meta.env.BASE_URL`の値は、`base`にどのような値を設定するかに関わらず、`trailingSlash`の設定で決定されます。

`trailingSlash: "always"`が設定されている場合は、常に末尾にスラッシュが含まれます。`trailingSlash: "never"`が設定されている場合は、`base`にスラッシュが含まれていても、`BASE_URL`には末尾のスラッシュが含まれません。

さらに、Astroはインテグレーションで利用可能にする前に、`config.base`に設定された値を内部で操作します。インテグレーションで読み込まれる`config.base`の値も、同様に`trailingSlash`設定によって決定されます。

以下の例では、`import.meta.env.BASE_URL`と`config.base`の値は、処理されるときにどちらも`/docs`になります。

```js
{
	 base: '/docs/',
	 trailingSlash: "never"
}
```

以下の例では、`import.meta.env.BASE_URL`と`config.base`の値は、処理されるときにどちらも`/docs/`になります。

```js
{
	 base: '/docs',
	 trailingSlash: "always"
}
```

### trailingSlash

<p>

**データ型:** `'always' | 'never' | 'ignore'`<br />
**デフォルト値:** `'ignore'`
</p>

開発サーバーのルーティングをマッチさせる動作の設定をします。次のオプションから選択してください。
  - `'always'` - 末尾にスラッシュを含むURLにのみマッチします。（例: "/foo/"）
  - `'never'` - 末尾にスラッシュを含むURLにはマッチしない。（例: "/foo"）
  - `'ignore'` - URLの末尾に"/"があるかどうかに関係なくマッチします。

本番用ホストが末尾のスラッシュの有無を厳格に扱う場合に、この設定項目を使用してください。

開発中に末尾のスラッシュの有無によりURLが動作しないようにしたい場合にも、このオプションを設定できます。

```js
{
  // 例: 開発時に末尾のスラッシュを必須にする
  trailingSlash: 'always'
}
```
**以下も参照:**
- build.format

### redirects

<p>

**データ型:** `Record.<string, RedirectConfig>`<br />
**デフォルト値:** `{}`<br />
<Since v="2.9.0" />
</p>

リダイレクトのマッピングを指定します。マッチするルートをキーに、リダイレクト先のパスを値にします。

動的ルートと静的ルートの両方をリダイレクトできますが、同じ種類のルートにのみリダイレクトできます。たとえば、`'/article': '/blog/[...slug]'` のようなリダイレクトはできません。


```js
{
  redirects: {
    '/old': '/new',
    '/blog/[...slug]': '/articles/[...slug]',
  }
}
```

アダプターをインストールせずに静的に生成されたサイトでは、[`<meta http-equiv="refresh">`タグ](https://developer.mozilla.org/ja/docs/Web/HTML/Element/meta#http-equiv)によるクライアントリダイレクトを生成し、ステータスコードはサポートされません。

SSRの使用時か、`output: static`モードで静的アダプターを使用している場合は、ステータスコードがサポートされます。AstroはリダイレクトされるGETリクエストにはステータスコード`301`を、その他のリクエストメソッドにはステータスコード`308`を使用します。

[リダイレクトのステータスコード](https://developer.mozilla.org/ja/docs/Web/HTTP/Status#redirection_messages)は、リダイレクトの設定でオブジェクトを使用してカスタマイズできます。

```js
{
  redirects: {
    '/other': {
      status: 302,
      destination: '/place',
    },
  }
}
```

### output

<p>

**データ型:** `'static' | 'server' | 'hybrid'`<br />
**デフォルト値:** `'static'`
</p>

ビルドの出力対象を指定します。

- `'static'` - 静的ホストにデプロイされる静的サイトをビルドします。
- `'server'` - SSR (サーバーサイドレンダリング) をサポートするホストにデプロイされるアプリをビルドします。
- `'hybrid'` - サーバーサイドレンダリングするページを一部含んだ静的サイトをビルドします。

```js
import { defineConfig } from 'astro/config';

export default defineConfig({
  output: 'static'
})
```
**以下も参照:**
- adapter

### adapter

<p>

**データ型:** `AstroIntegration`
</p>

ビルドアダプターにより、好みのサーバー、サーバーレス、エッジのホストにデプロイできます。[Netlify](/ja/guides/deploy/netlify/#ssr用のアダプターを追加する)や[Vercel](/ja/guides/deploy/vercel/#ssrアダプター)などのファーストパーティーのアダプターをインポートし、AstroのSSRを活用しましょう。

SSRについて詳しくは[サーバーサイドレンダリングのガイド](/ja/guides/server-side-rendering/)を、ホストの完全な一覧は[デプロイのガイド](/ja/guides/deploy/)を確認してください。

```js
import netlify from '@astrojs/netlify';
{
  // 例: Netlifyのサーバーレスデプロイのためにビルドする
  adapter: netlify(),
}
```
**以下も参照:**
- output

### integrations

<p>

**Type:** `AstroIntegration[]`
</p>

カスタムインテグレーションでAstroを拡張します。インテグレーションは、Solid.jsなどのフレームワークのサポート、サイトマップなどの新しい機能、Partytownなど新しいライブラリの追加を一手に担います。

Astro のインテグレーションを使い始めるためには[インテグレーションガイド](/ja/guides/integrations-guide/)を確認してください。

```js
import react from '@astrojs/react';
import tailwind from '@astrojs/tailwind';
{
  // 例: Astro にReactとTailwindのサポートを追加
  integrations: [react(), tailwind()]
}
```

### root

<p>

**データ型:** `string`<br />
**CLI:** `--root`<br />
**デフォルト値:** `"."` (現在の作業ディレクトリ)
</p>

このオプションはプロジェクトルート以外のディレクトリで`astro`のCLIコマンドを実行するときにのみ指定する必要があります。Astroは設定ファイルを見つける前にプロジェクトルートを知る必要があるため、通常このオプションは [Astroの設定ファイル](/ja/guides/configuring-astro/#サポートされている設定ファイルの種類)ではなくCLI経由で指定されます。

`--root: './my-project'`のように相対パスを渡した場合、Astroは現在の作業ディレクトリを起点として相対パスを解決します。

#### 例

```js
{
  root: './my-project-directory'
}
```

```bash
$ astro build --root ./my-project-directory
```

### srcDir

<p>

**データ型:** `string`<br />
**デフォルト値:** `"./src"`
</p>

Astroがサイトを読み込むディレクトリを設定します。

ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。

```js
{
  srcDir: './www'
}
```

### publicDir

<p>

**データ型:** `string`<br />
**デフォルト値:** `"./public"`
</p>

静的アセットを置くディレクトリを設定します。このディレクトリのファイルは開発環境では`/`で配信され、ビルド時にはビルド用のディレクトリにコピーされます。これらのファイルは変換、バンドルされることはなく、常にそのままの状態で配信、コピーされます。

ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。

```js
{
  publicDir: './my-custom-publicDir-directory'
}
```

### outDir

<p>

**データ型:** `string`<br />
**デフォルト値:** `"./dist"`
</p>

`astro build`コマンドがビルドの最終成果物を出力するディレクトリを設定します。

ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。

```js
{
  outDir: './my-custom-build-directory'
}
```
**以下も参照:**
- build.server

### cacheDir

<p>

**データ型:** `string`<br />
**デフォルト値:** `"./node_modules/.astro"`
</p>

ビルド成果物をキャッシュするディレクトリを設定します。このディレクトリのファイルは、ビルド時間を短縮するために以降のビルドで使用されます。

ファイルシステムの絶対パスかプロジェクトルートからの相対パスのどちらかを指定します。

```js
{
  cacheDir: './my-custom-cache-directory'
}
```

### compressHTML

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `true`
</p>

HTML出力をミニファイし、HTMLファイルのサイズを小さくするためのオプションです。デフォルトでは、Astroは`.astro`コンポーネントのHTMLから改行を含む空白を削除します。これは開発モードと最終ビルドの両方で発生します。HTMLの圧縮を無効にするには、`compressHTML`フラグを`false`に設定します。

```js
{
  compressHTML: false
}
```

### scopedStyleStrategy

<p>

**データ型:** `'where' | 'class' | 'attribute'`<br />
**デフォルト値:** `'attribute'`<br />
<Since v="2.4" />
</p>

Astroコンポーネント内のスタイルをスコープするための戦略を指定します。次のオプションから選択してください。
  - `'where'` 		- `:where`セレクターを使用し、詳細度（specificity）は増加しません。
  - `'class'` 		- クラスベースのセレクターを使用し、詳細度は1だけ増加します。
  - `'attribute'` 	- `data-`属性を使用し、詳細度は増加しません。

`'class'`を使用すると、Astroコンポーネント内の要素セレクターが（たとえばグローバルスタイルシートの）グローバルスタイルのデフォルトを上書きすることを保証できます。`'where'`を使用すると、詳細度をより細かく制御できますが、より高い詳細度のセレクター、レイヤー、その他のツールを使用して、適用されるセレクターを制御する必要があります。`'attribute'`を使用すると、要素の`class`属性を操作し、自分のスタイルロジックとAstroの適用するスタイルとの間の競合を回避する必要がある場合に便利です。

### vite

<p>

**Type:** `ViteUserConfig`
</p>

Viteに追加の設定項目を渡します。Astroがサポートしていない高度な設定が必要になった場合に有用です。

`vite`に設定するオブジェクトの完全なドキュメントは[vitejs.dev](https://ja.vitejs.dev/config/)を確認してください。

#### 例

```js
{
  vite: {
    ssr: {
      // 例: 必要な場合、壊れたパッケージがSSRの処理を行うのをスキップさせます
      external: ['broken-npm-package'],
    }
  }
}
```

```js
{
  vite: {
    // 例: Astroプロジェクトにカスタムのviteプラグインを直接追加する
    plugins: [myPlugin()],
  }
}
```

## ビルドのオプション

### build.format

<p>

**データ型:** `('file' | 'directory' | 'preserve')`<br />
**デフォルト値:** `'directory'`
</p>

各ページの出力ファイルの形式を制御します。この値はアダプターによって設定されることがあります。
  - `'file'`: Astroは"/foo.html"のように、各ページに対応するHTMLファイルを生成します。
  - `'directory': Astroは"/foo/index.html"のように、ディレクトリを生成しページに対応する`index.html`ファイルをネストします。
  - `'preserve'`: Astroは、ソースフォルダに表示される通りにHTMLファイルを生成します。（例: `src/pages/about.astro`が`/about.html`を作成し、`src/pages/about/index.astro`がファイル`/about/index.html`を作成します。)

```js
{
  build: {
    // 例: ビルド時に`page/index.html`ではなく`page.html`を生成します。
    format: 'file'
  }
}
```

#### Astro.urlへの影響
`build.format`の値によって、ビルド時に`Astro.url`に設定される値が変わります。
- `directory`の場合 - `Astro.url.pathname`は、フォルダの挙動を模倣するために、`/foo/`のように末尾にスラッシュを含みます。
- `file`の場合 - `Astro.url.pathname`は、`/foo.html`のように`.html`を含みます。

これにより、`new URL('./relative', Astro.url)`を使用して相対URLを作成すると、開発時とビルド時で一貫した動作となります。

開発時の末尾のスラッシュの挙動を一貫させるために、ビルドフォーマットに応じて[`trailingSlash`オプション](#trailingslash)を`'always'`または`'never'`に制限できます。
- `directory`の場合 - `trailingSlash: 'always'`を設定する
- `file`の場合 - `trailingSlash: 'never'`を設定する

### build.client

<p>

**データ型:** `string`<br />
**デフォルト値:** `'./dist/client'`
</p>

`output: 'server'`または`output: 'hybrid'`の場合にのみ、クライアントサイドのCSSとJavaScriptの出力ディレクトリを制御します。`outDir`はコードがビルドされる場所を制御します。

`outDir`に対する相対パスを指定します。

```js
{
  output: 'server', // または'hybrid'
  build: {
    client: './client'
  }
}
```

### build.server

<p>

**データ型:** `string`<br />
**デフォルト値:** `'./dist/server'`
</p>

SSRのビルド時にサーバーJavaScriptの出力ディレクトリを制御します。

`outDir`に対する相対パスを指定します。

```js
{
  build: {
    server: './server'
  }
}
```

### build.assets

<p>

**データ型:** `string`<br />
**デフォルト値:** `'_astro'`<br />
<Since v="2.0.0" />
</p>

バンドルされたJSやCSSなどのAstroが生成したアセットが、ビルド出力先のどのディレクトリに配置されるかを指定します。

```js
{
  build: {
    assets: '_custom'
  }
}
```
**以下も参照:**
- outDir

### build.assetsPrefix

<p>

**データ型:** `string`<br />
**デフォルト値:** `undefined`<br />
<Since v="2.2.0" />
</p>

Astroが生成したアセットへのリンクのプレフィックスを指定します。アセットが現在のサイトとは異なるドメインから提供されている場合に使用できます。

たとえばこの値を`https://cdn.example.com`に設定すると、アセットは（`base`オプションに関係なく）`https://cdn.example.com/_astro/...`から取得されます。アセットを配信するには、`./dist/_astro/`のファイルを`https://cdn.example.com/_astro/`にアップロードする必要があります。この手順はサードパーティのドメインがどのようにホストされているかによって異なります。`_astro`パスの名前を変更するには、`build.assets`に新しいディレクトリを指定します。

```js
{
  build: {
    assetsPrefix: 'https://cdn.example.com'
  }
}
```

### build.serverEntry

<p>

**データ型:** `string`<br />
**デフォルト値:** `'entry.mjs'`
</p>

SSRのビルド時のサーバーエントリーポイントのファイル名を指定します。このエントリーポイントは、デプロイ先のホストに通常依存し、アダプターが自動的に設定します。

ランタイムがファイルをJavaScriptモジュールとして認識できるように、このファイルの拡張子は`.mjs`とすることをおすすめします。

```js
{
  build: {
    serverEntry: 'main.mjs'
  }
}
```

### build.redirects

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `true`<br />
<Since v="2.6.0" />
</p>

リダイレクトがビルド時にHTMLに出力されるかどうかを指定します。このオプションは`output: 'static'`モードでのみ適用されます。SSRでは、リダイレクトは他のレスポンスと同じように扱われます。

このオプションは、リダイレクト用の特別な設定ファイルをもち、HTMLベースのリダイレクトを必要としない・望まないアダプターによって使用されることを想定しています。

```js
{
  build: {
    redirects: false
  }
}
```

### build.inlineStylesheets

<p>

**データ型:** `'always' | 'auto' | 'never'`<br />
**デフォルト値:** `auto`<br />
<Since v="2.6.0" />
</p>

プロジェクトのスタイルがcssファイルとしてブラウザに送信されるか、`<style>`タグとしてインラインで送信されるかを制御します。次のオプションから選択します。
 - `'always'` - プロジェクトのスタイルは`<style>`タグにインライン化されます。
 - `'auto'` - `ViteConfig.build.assetsInlineLimit`（デフォルト: 4kb）より小さいスタイルシートのみがインライン化されます。それ以外の場合、プロジェクトのスタイルは外部のスタイルシートとして送信されます。
 - `'never'` - プロジェクトのスタイルは外部のスタイルシートとして送信されます。

```js
{
	build: {
		inlineStylesheets: `never`,
	},
}
```

## サーバーのオプション

`astro dev`と`astro preview`の両方で使用される、Astroの開発サーバーをカスタマイズします。

```js
{
  server: { port: 1234, host: true }
}
```

実行するコマンド（"dev"、"preview"）に応じて設定を変えるために、この設定項目に関数を渡すこともできます。

```js
{
  // 例: コマンドに応じてカスタマイズするためには関数の構文を使用します
  server: (command) => ({ port: command === 'dev' ? 4321 : 4000 })
}
```

### server.host

<p>

**データ型:** `string | boolean`<br />
**デフォルト値:** `false`<br />
<Since v="0.24.0" />
</p>

localhost以外のIPなど、サーバーがリッスンするネットワークIPアドレスを設定します。
- `false` - ネットワークIPアドレスを公開しません。
- `true` - LANやパブリックなアドレスを含むすべてのアドレスでリッスンします。
- `[カスタムアドレス]` - `192.168.0.1`などの`[カスタムアドレス]`のネットワークIPアドレスを公開します。

### server.port

<p>

**データ型:** `number`<br />
**デフォルト値:** `4321`
</p>

サーバーがリッスンするポートを設定します。

設定したポートが使用されていた場合、Astroは自動的に利用可能な次のポート番号を使用しようと試みます。

```js
{
  server: { port: 8080 }
}
```

### server.open

<p>

**データ型:** `string | boolean`<br />
**デフォルト値:** `false`<br />
<Since v="4.1.0" />
</p>

開発サーバーが起動時にブラウザウィンドウを開くかどうかを制御します。

開くURLを指定するには、URL文字列全体（例: "http://example.com" ）、またはパス名（例: "/about"）を渡します。

```js
{
  server: { open: "/about" }
}
```

### server.headers

<p>

**データ型:** `OutgoingHttpHeaders`<br />
**デフォルト値:** `{}`<br />
<Since v="1.7.0" />
</p>

`astro dev`と`astro preview`で送信されるカスタムHTTPレスポンスヘッダーを設定します。

## 開発ツールバーのオプション

### devToolbar.enabled

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `true`
</p>

Astroの開発ツールバーを有効化するかどうか。このツールバーを使うと、ページのアイランドを調査したり、パフォーマンスやアクセシビリティの便利な監査をしたりできるようになります。

このオプションのスコープはプロジェクト全体です。自分の環境でのみツールバーを無効化するには、`npm run astro preferences disable devToolbar`を実行します。すべてのAstroプロジェクトでツールバーを無効化するには、`npm run astro preferences disable devToolbar --global`を実行してください。

## prefetchのオプション

<p>

**データ型:** `boolean | object`
</p>

高速なページ遷移を提供するために、サイト上のリンクに対してプリフェッチを有効にします。（`<ViewTransitions />`を使用しているページではデフォルトで有効化されます。この動作からオプトアウトするには`prefetch: false`を設定してください。）

この設定は自動的にプロジェクト内のすべてのページにプリフェッチスクリプトを追加し、`data-astro-prefetch`属性を利用できるようにします。ページ上の任意の`<a />`リンクにこの属性を追加すると、そのページのプリフェッチが有効になります。

```html
<a href="/about" data-astro-prefetch>About</a>
```

デフォルトのプリフェッチ動作をさらにカスタマイズするには、[`prefetch.defaultStrategy`](#prefetchdefaultstrategy)と[`prefetch.prefetchAll`](#prefetchprefetchall)オプションを使用します。

より詳しい情報については、[プリフェッチのガイド](/ja/guides/prefetch/)を参照してください。

### prefetch.prefetchAll

<p>

**データ型:** `boolean`
</p>

`data-astro-prefetch`属性のないリンクも含めて、すべてのリンクに対してプリフェッチを有効にします。`<ViewTransitions />`ルーターを使用している場合は、この値はデフォルトで`true`になります。そうでない場合は、デフォルト値は`false`です。

```js
prefetch: {
	prefetchAll: true
}
```

`true`に設定した場合には、任意の個別のリンク上に`data-astro-prefetch="false"`を設定することで、プリフェッチを個別に無効化できます。

```html
<a href="/about" data-astro-prefetch="false">About</a>
```

### prefetch.defaultStrategy

<p>

**データ型:** `'tap' | 'hover' | 'viewport' | 'load'`<br />
**デフォルト値:** `'hover'`
</p>

`data-astro-prefetch`属性が値無しでリンク上に設定されたときの、デフォルトのプリフェッチ戦略です。

- `'tap'`: リンクをクリックする直前にプリフェッチします。
- `'hover'`: リンク上にホバーまたはフォーカスしたときにプリフェッチします。（デフォルト）
- `'viewport'`: リンクがビューポートに入ったときにプリフェッチします。
- `'load'`: ページのロード後に、ページ上のすべてのリンクをプリフェッチします。

属性の値を設定することで、個別のリンクに対して、このデフォルト値を上書きして異なる戦略を選択できます。

```html
<a href="/about" data-astro-prefetch="viewport">About</a>
```

## 画像のオプション

### image.endpoint

<p>

**データ型:** `string`<br />
**デフォルト値:** `undefined`<br />
<Since v="3.1.0" />
</p>

画像最適化に使用するエンドポイントを設定します。`undefined`を設定すると、デフォルトのエンドポイントが使用されます。

エンドポイントは常に`/_image`に挿入されます。

```js
{
  image: {
    // 例: カスタム画像エンドポイントを使用する
    endpoint: './src/image-endpoint.ts',
  },
}
```

### image.service

<p>

**データ型:** `Object`<br />
**デフォルト値:** `{entrypoint: 'astro/assets/services/sharp', config?: {}}`<br />
<Since v="2.1.0" />
</p>

どの画像サービスをAstroのアセットサポートで使用するかを設定します。

画像サービスが使用するエントリーポイントを含むオブジェクトを指定する必要があります。オプションで、サービスに渡す設定用オブジェクトを含めることもできます。

サービスのエントリーポイントは、組み込みのサービスかサードパーティのパッケージのどちらかを指定できます。

```js
{
	image: {
		// 例: Sharpをベースとした画像サービスをカスタム設定で有効にする
		service: {
			entrypoint: 'astro/assets/services/sharp',
			config: {
				limitInputPixels: false,
			},
		},
	}
}
```

#### image.service.config.limitInputPixels

<p>

**データ型:** `number | boolean`<br />
**デフォルト値:** `true`<br />
<Since v="4.1.0" />
</p>

Sharp画像サービスが処理する画像サイズを制限するかどうかを指定します。

`false`に設定すると、Sharp画像サービスのデフォルトの画像サイズ制限をバイパスして、大きな画像を処理します。

### image.domains

<p>

**データ型:** `Array.<string>`<br />
**デフォルト値:** `{domains: []}`<br />
<Since v="2.10.10" />
</p>

リモート画像の最適化を許可する画像ソースドメインのリストを定義します。Astroは、その他のリモート画像を最適化しません。

このオプションにはドメイン名の文字列の配列を指定します。ワイルドカードは許可されません。許可されたソースURLパターンのリストを定義するには[`image.remotePatterns`](#imageremotepatterns)を使用してください。

```js
// astro.config.mjs
{
  image: {
    // 例: リモート画像の最適化を単一のドメインに対して許可する
    domains: ['astro.build'],
  },
}
```

### image.remotePatterns

<p>

**データ型:** `Array.<RemotePattern>`<br />
**デフォルト値:** `{remotePatterns: []}`<br />
<Since v="2.10.10" />
</p>

リモート画像の最適化を許可する画像ソースURLパターンのリストを定義します。

`remotePatterns`は4つのプロパティで設定します。
1. プロトコル（protocol）
2. ホスト名（hostname）
3. ポート（port）
4. パス名（pathname）

```js
{
  image: {
    // 例: s3バケットのすべての画像に対して処理を許可する
    remotePatterns: [{
      protocol: 'https',
      hostname: '**.amazonaws.com',
    }],
  },
}
```

以下のように、許可された`hostname`と`pathname`の値を定義するためにワイルドカードを使用できます。それ以外の場合、指定された値のみがそのまま設定されます。
`hostname`:
  - すべてのサブドメインを許可するには、'**.'で始めます（'endsWith'を使う）。
  - 1つの階層のサブドメインのみを許可するには、'*.'で始めます。

`pathname`:
  - すべてのサブルートを許可するには、'/**'で終わります（'startsWith'を使う）。
  - 1つの階層のサブルートのみを許可するには、'/*'で終わります。

## マークダウンのオプション

### markdown.shikiConfig

<p>

**データ型:** `Partial<ShikiConfig>`
</p>

Shiki の設定項目です。使い方は[マークダウンの設定のドキュメント](/ja/guides/markdown-content/#shikiの設定)を確認してください。

### markdown.syntaxHighlight

<p>

**データ型:** `'shiki' | 'prism' | false`<br />
**デフォルト値:** `shiki`
</p>

使用するシンタックスハイライトを設定します。
- `shiki` - [Shiki](https://github.com/shikijs/shiki)のハイライトを使用します。
- `prism` - [Prism](https://prismjs.com/)のハイライトを使用します。
- `false` - シンタックスハイライトを使用しません。

```js
{
  markdown: {
    // 例: マークダウンでprismのシンタックスハイライトを使用するよう変更する
    syntaxHighlight: 'prism',
  }
}
```

### markdown.remarkPlugins

<p>

**データ型:** `RemarkPlugins`
</p>

マークダウンのビルドの仕方をカスタマイズするために[Remark](https://github.com/remarkjs/remark)のプラグインを渡します。プラグインの関数をインポートして適用する（推奨）か、プラグインの名前を文字列として渡します。

```js
import remarkToc from 'remark-toc';
{
  markdown: {
    remarkPlugins: [remarkToc]
  }
}
```

### markdown.rehypePlugins

<p>

**データ型:** `RehypePlugins`
</p>

マークダウンのビルドの仕方をカスタマイズするために[Rehype](https://github.com/remarkjs/remark-rehype)のプラグインを渡します。プラグインの関数をインポートして適用する（推奨）か、プラグインの名前を文字列として渡します。

```js
import { rehypeAccessibleEmojis } from 'rehype-accessible-emojis';
{
  markdown: {
    rehypePlugins: [rehypeAccessibleEmojis]
  }
}
```

### markdown.gfm

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `true`<br />
<Since v="2.0.0" />
</p>

Astroは[GitHub風のマークダウン](https://github.com/remarkjs/remark-gfm)をデフォルトで使用します。これを無効にするには、`gfm`フラグを`false`に設定します。

```js
{
  markdown: {
    gfm: false,
  }
}
```

### markdown.smartypants

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `true`<br />
<Since v="2.0.0" />
</p>

Astroは[SmartyPantsのフォーマッター](https://daringfireball.net/projects/smartypants/)をデフォルトで使用します。これを無効にするには、`smartypants`フラグを`false`に設定します。

```js
{
  markdown: {
    smartypants: false,
  }
}
```

### markdown.remarkRehype

<p>

**データ型:** `RemarkRehype`
</p>

[remark-rehype](https://github.com/remarkjs/remark-rehype#api)にオプションを渡します。

```js
{
  markdown: {
    // 例: 脚注のテキストを別の言語に翻訳します。ここではデフォルトの英語の値を示します。
    remarkRehype: { footnoteLabel: "Footnotes", footnoteBackLabel: "Back to reference 1"},
  },
};
```

## i18n

<p>

**データ型:** `object`<br />
<Since v="3.5.0" />
</p>

i18nルーティングを設定し、カスタマイズオプションを指定できるようにします。

より詳しい情報については、ガイド[Astroにおける国際化](/ja/guides/internationalization/)を参照してください。

### i18n.defaultLocale

<p>

**データ型:** `string`<br />
<Since v="3.5.0" />
</p>

ウェブサイト/アプリケーションのデフォルトのロケールです。これは必須のフィールドです。

特定の言語のフォーマットや構文が強制されることはありませんが、互換性を最大化するために、必要に応じて小文字とハイフン（例: "es"、"pt-br"）を使用することを推奨します。

### i18n.locales

<p>

**データ型:** `Locales`<br />
<Since v="3.5.0" />
</p>

`defaultLocale`も含む、ウェブサイトがサポートするすべてのロケールのリストです。これは必須のフィールドです。

言語は、個別のコードとしてリストすることも（例: `['en', 'es', 'pt-br']`)、codesの共有の`path`へのマッピングとしてリストすることもできます（例: `{ path: "english", codes: ["en", "en-US"]}`）。これらのcodesはデプロイされるサイトのURL構造を決定するために使われます。

特定の言語のフォーマットや構文が強制されることはありませんが、フォルダ構造はリスト内のロケールに完全に一致しなければいけません。複数の`codes`がカスタムURLのパスプリフィックスを指す場合には、設定された`path`と同じ名前のフォルダにコンテンツを保存してください。

### i18n.fallback

<p>

**データ型:** `Record.<string, string>`<br />
<Since v="3.5.0" />
</p>

存在しないページへナビゲーションしたときのフォールバック戦略です（例: 翻訳ページがまだ作成されていない場合）。

このオブジェクトを使用して、サポートしている各言語に対するフォールバック`locale`ルートを宣言してください。フォールバックが指定されなかった場合、利用できないページは404を返します。

#### 例

以下の例では、コンテンツのフォールバック戦略を、`/pt-br/`で利用できないページから対応する`es`バージョンにリダイレクトするように、また、`/fr/`で利用できないページから対応する`en`バージョンにリダイレクトするように設定しています。`/es/`で利用できないページは、404を返します。

```js
export default defineConfig({
	i18n: {
		defaultLocale: "en",
		locales: ["en", "fr", "pt-br", "es"],
		fallback: {
			pt: "es",
			fr: "en"
		}
	}
})
```

### i18n.routing

<p>

**データ型:** `Routing`<br />
<Since v="3.7.0" />
</p>

サイトのURLを決定するためのルーティング戦略を制御します。デフォルト言語のフォルダ/URLのパス設定を元に設定してください。

#### i18n.routing.prefixDefaultLocale

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `false`<br />
<Since v="3.7.0" />
</p>

`false`の場合、デフォルト以外の言語でのみ言語プリフィックスが表示されます。`defaultLocale`では、言語プリフィックスとローカライズされたフォルダに存在しないコンテンツファイルは表示されません。URLの形式は、デフォルト以外のすべての言語では`example.com/[lang]/content/`になりますが、デフォルトのロケールでは`example.com/content/`になります。

`true`の場合、すべてのURLに言語プリフィックスが表示されます。URLの形式は、デフォルト言語も含めて、すべてのルーティングで`example.com/[lang]/content/`になります。ローカライズされたフォルダが、デフォルト言語も含めてすべての言語で使用されます。

#### i18n.routing.redirectToDefaultLocale

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `true`<br />
<Since v="4.2.0" />
</p>

`prefixDefaultLocale: true`が設定されている場合に、`src/pages/index.astro`から生成されたホームURL（`/`）を`/[defaultLocale]`にリダイレクトするかどうかを設定します。

`redirectToDefaultLocale: false`を設定すると、サイトのルート上でこの自動リダイレクトを無効化します。

```js
// astro.config.mjs
export default defineConfig({
i18n:{
  defaultLocale: "en",
    locales: ["en", "fr"],
    routing: {
    prefixDefaultLocale: true,
      redirectToDefaultLocale: false
  }
}
})
```

## レガシーなフラグ

Astroのバージョン間の移行を支援するために、`legacy`フラグを導入することがあります。これらのフラグを使用すると、最新バージョンのAstroでも非推奨または古い動作を有効化できるため、Astroの新しいリリースにアップグレードして引き続き利用できます。

## 実験的なフラグ

Astroは、ユーザーが新しい機能に早期にアクセスできるように、実験的なフラグを提供しています。これらのフラグは安定しているとは限りません。

### experimental.optimizeHoistedScript

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `false`<br />
<Since v="2.10.4" />
</p>

使用されていないコンポーネントのスクリプトが予期せずページに含まれるのを防ぎます。この最適化はベストエフォートであり、逆に使用されているスクリプトが含まれなくなる可能性もあります。ページを公開する前にビルドされた内容をしっかり確認してください。巻き上げられた（hoisted）スクリプトの解析の最適化を有効にするには、以下の実験的なフラグを追加します。

```js
{
	experimental: {
		optimizeHoistedScript: true,
	},
}
```

### experimental.contentCollectionCache

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `false`<br />
<Since v="3.5.0" />
</p>

静的モードでビルドするときに、コンテンツコレクションに対して永続キャッシュを有効にします。

```js
{
	experimental: {
		contentCollectionCache: true,
	},
}
```

### experimental.clientPrerender

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `false`<br />
<Since v="4.2.0" />
</p>

対応ブラウザで、設定されたページのクライアント上でのプリレンダリングを有効化します。

この機能は、実験的な[Speculation Rules Web API](https://developer.mozilla.org/en-US/docs/Web/API/Speculation_Rules_API)を使用しており、デフォルトの`prefetch`の動作を、クライアント上でリンクをプリレンダリンクするようにグローバルで上書きします。この機能を有効にする前に、[クライアント上でのプリレンダリングを行うときの潜在的なリスク](https://developer.mozilla.org/en-US/docs/Web/API/Speculation_Rules_API#unsafe_prefetching)を確認することをおすすめします。

以下は、`astro.config.mjs`で、好きな`prefetch`設定オプションとともにクライアントサイドのプリレンダリングを有効にする例です。

```js
// astro.config.mjs
{
	prefetch: {
		prefetchAll: true,
		defaultStrategy: 'viewport',
	},
	experimental: {
  	clientPrerender: true,
	},
}
```

サイト上の任意の`<a />`リンク上で`data-astro-prefetch`属性を使うことで、引き続きプリフェッチにオプトインできます。`<link>`タグをドキュメントの先頭に追加したり、ページをJavaScriptでフェッチする代わりに、対応するspeculation ruleを持つ`<script>`タグが追加されます。

クライアントサイドのプリレンダリングにはブラウザの対応が必要です。Speculation Rules APIがサポートされていない場合は、`prefetch`は対応している戦略にフォールバックします。

より詳しい`prefetch`のオプションや使用方法については、[プリフェッチのガイド](/ja/guides/prefetch/)を参照してください。

### experimental.globalRoutePriority

<p>

**データ型:** `boolean`<br />
**デフォルト値:** `false`<br />
<Since v="4.2.0" />
</p>

すべてのルーティングに対して、同じ[ルーティング優先順位ルール](/ja/guides/routing/#ルーティングの優先順位)に従い、リダイレクトと挿入されたルーティングをファイルベースのプロジェクトルーティングと同等に優先順位付けします。

  これにより、特定の種類のルーティングを自動的に優先せずに、プロジェクト内のルーティングをより制御できるようになり、すべてのルーティングに対してルーティングの優先順位付けを標準化できます。

以下の例は、ファイルベースのルーティング、挿入されたルーティング、リダイレクトが次のように組み合わされた場合に、どのルートが特定のページのURLをビルドするかを示しています。
- ファイルベースのルーティング: `/blog/post/[pid]`
- ファイルベースのルーティング: `/[page]`
- 挿入されたルーティング: `/blog/[...slug]`
- リダイレクト: `/blog/tags/[tag]` -> `/[tag]`
- リダイレクト: `/posts` -> `/blog`

`experimental.globalRoutingPriority`を有効化すると、（Astro 4.0のデフォルトのルーティング優先順位の代わりに）次のようになります。

- （挿入されたルーティング`/blog/[...slug]`の代わりに）`/tags/[tag]`へのリダイレクトにより、`/blog/tags/astro`がビルドされる
- （挿入されたルーティング`/blog/[...slug]`の代わりに）ファイルベースのルーティング`/blog/post/[pid]`により、`/blog/post/0`がビルドされる
- （ファイルベースのルーティング`/[page]`の代わりに）`/blog`へのリダイレクトにより、`/posts`がビルドされる

ルーティングの優先度が等しい2つのルーティングが同じURLのビルドを試みる、ルーティング衝突が発生した場合は、Astroは競合するルーティングを特定できる警告をログ出力します。

### experimental.i18nDomains

<p>

  **データ型:** `boolean`<br />
  **デフォルト値:** `false`<br />
  <Since v="4.3.0" />
</p>

[実験的な`domains`ルーティング戦略](/ja/guides/internationalization/#domains-experimental)のためのドメインサポートを有効化します。これにより、1つ以上の対応言語のURLパターンを、カスタムドメイン（またはサブドメイン）を使用するように設定できます。

ロケールがドメインにマッピングされるとき、`/[locale]/`パスプレフィックスは使用されません。ただし、`src/pages/`内のローカライズされたフォルダは、設定された`defaultLocale`を含めて依然として必要になります。

設定されなかった他のすべてのロケールは、`prefixDefaultLocale` 戦略にしたがって、デフォルトでローカライズされたパスベースのURLになります（例: `https://example.com/[locale]/blog`）。

```js
//astro.config.mjs
export default defineConfig({
	site: "https://example.com",
	output: "server", // 必須、プリレンダリングされたページはなし
	adapter: node({
		mode: 'standalone',
	}),
	i18n: {
		defaultLocale: "en",
		locales: ["en", "fr", "pt-br", "es"],
		prefixDefaultLocale: false,
		domains: {
			fr: "https://fr.example.com",
			es: "https://example.es",
		},
	},
	experimental: {
		i18nDomains: true,
	},
});
```

作成されたページルートと、`astro:i18n`のヘルパー関数[`getAbsoluteLocaleUrl()`](/ja/guides/internationalization/#getabsolutelocaleurl)および[`getAbsoluteLocaleUrlList()`](/ja/guides/internationalization/#getabsolutelocaleurllist)から返されたURLは、ともに`i18n.domains`に設定されたオプションを使用します。

この実験的機能の制限を含む詳しい情報については、[国際化ガイド](/ja/guides/internationalization/#domains-experimental)を参照してください。
